Typical operating systems for computer systems are designed as SKUs. Though the acronym “SKU” has the literal meaning of “shop keeping unit”, in the business of operating system design, a SKU also refers to a particular version of an operating system that is designed for a particular category of computer systems. For example, one operating system may be designed for home personal computer systems, another may be designed for business computer systems, while yet another may be designed for server computer systems, while still another may be designed for hand-held computer systems.
Each SKU, or version of an operating system, has minimum computer system requirements to function properly once installed. These computer system requirements may be requirements such as a minimum amount of random access memory (RAM), a minimum amount of storage space, a minimum processor capability, or a minimum video card capability. If a minimum computer system capability is not met by the computer system, then the operating system may not be installable on the computer system, may function inefficiently, or may not be capable of performing some tasks which are installed as part of the operating system.
Typically an installer, such an end user or an OEM (original equipment manufacturer) buys an operating system SKU that contains features they desire, and then installs it. The installer then performs a basic check of the hardware to determine what peripherals and hardware components exist in the computer system, and then installs drivers needed for their support.
A disadvantage of the above described process is that the end user or OEM has the responsibility to make sure that, prior to installation, the operating system will fit on the target computer system and work well on the target computer system. Even if the computer system meets the minimum requirements such that the operating system may be installed and run, there is a chance that the computer system may have very poor performance.
Another technique that large OEMs utilize to avoid poor performance is manually optimizing an operating system for a particular computer system configuration. An image of this installation of the operating system is created, and then copied to identical computer system configurations that are manufactures. While this is a workable solution, it has several disadvantages. This solution is time consuming and costly, as a custom image must be built for each configuration of computer system that is manufactured. This solution also poses difficulties in managing and maintaining these images.
As can be seen, present methods and techniques for installing operating systems on computer systems suffer from several disadvantages.